const app = getApp();
const db=wx.cloud.database();
const articles=db.collection('articles');
const user=db.collection('user');
const util=require('../../utils/utils.js')
Page({
  options: {
    multipleSlots: true
  },
  data: {
    scrollTop:0,
    addArticleBtnShow:true,
    loading: false,
    loadMore: true,
    articleList:[],
    userInfo:'',
    value:'',
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    wx.showToast({
      title: '数据加载中',
      icon:'loading'
    });
     wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {//如果用户已经授权则直接调用用户信息
          wx.getUserInfo({
            success: res => {
              app.globalData.userInfo=res.userInfo;
              app.globalData.logged=true;
              wx.cloud.callFunction({
                name:'getOpenid',
                complete:res=>{
                  app.globalData.openid=res.result.openid
                }
              })
            }
          })
        }
      }
    })
    //加载文章列表
    this.loadData();
  },
//加载博客文章数据
loadData:function () {
  articles.get({
    success: res => {
      wx.hideToast();
      this.setData({
        articleList:res.data
      });
      wx.stopPullDownRefresh();
    },
    fail: err => {
      wx.showToast({
        icon: 'none',
        title: '查询记录失败'
      })
    }
  })
},
/**
 * 自定函数----------search组件输入值改变
 */
onChange(e){
  this.setData({
    value:e.detail
  })
},
 /**
  * 自定义函数---------------------取消
  */
 onCancel:function(){
   //加载文章列表
   this.loadData();
 },
 /**
  *自定义函数--------------------------搜索
  */
 onSearch:function(e){
   wx.showToast({
     title: '查询中',
     icon: 'loading'
   })
  let keyWord=e.detail;
  articles.where({
    title:db.RegExp({
      regexp:keyWord,
      options:'i'
    })
  }).orderBy('time','asc').get({
      success:res=>{
        wx.hideToast();
        this.setData({
          articleList:res.data
        });
      }
    })
 },
/**
 * 自定义函数-----------当用户需要写博客的时候需要获取用户信息,此时应该将用户信息添加至user数据库
 */
onGetUserInfo:function(e){
  if (!app.globalData.logged && e.detail.userInfo) {
    this.setData({
      avatarUrl: e.detail.userInfo.avatarUrl,
      userInfo: e.detail.userInfo
    });
    let today=util.formatDate();
    app.globalData.logged=true;
    app.globalData.userInfo=e.detail.userInfo;
     wx.cloud.callFunction({
       name:'getOpenid', 
       complete:res=>{
        app.globalData.openid=res.result.openid;
         user.add({
           data:{
              avatarUrl:e.detail.userInfo.avatarUrl,
              city:e.detail.userInfo.city,
              gender:e.detail.userInfo.gender,
              nickName:e.detail.userInfo.nickName,
              loginTime:today,
              userInfo:e.detail.userInfo,
              openid:res.result.openid
           },
           success:res=>{
            console.log('添加数据成功：');
           },
           fail:err=>{
             console.log('添加数据失败：');
           }
         })
       }
     })
  }
},
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 主要是对评论和点赞的返回页面刷新
    this.loadData();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },
  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    // wx.showNavigationBarLoading() //在标题栏中显示加载
    this.loadData();
    setTimeout(function(){
      wx.hideNavigationBarLoading() //完成停止加载
      wx.stopPullDownRefresh() //停止下拉刷新
    },1500);
    this.setData({
      loading: false,
    })
    // this.fetchData(this.data.pageIndex);
   
  },
  /**
   * 页面滚动触发事件
   */
  onPageScroll: function (e) {
    // console.log(e);
    if (e.scrollTop>this.data.scrollTop){
      this.setData({ addArticleBtnShow: false });
    }else{
      this.setData({ addArticleBtnShow: true });
    }
    this.setData({ scrollTop: e.scrollTop});
  },
  //写文章
  addArticle:function(){
    wx.navigateTo({
      url: '../article/articleAddorEdit/articleAddorEdit'
    })
  }
})